package cn.iocoder.yudao.module.crossborder.platform.api.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 平台信息 DTO
 *
 * @author LHL
 */
@Schema(description = "RPC 服务 - 平台信息 DTO")
@Data
public class PlatformDTO {

    @Schema(description = "平台编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long id;

    @Schema(description = "平台代码", requiredMode = Schema.RequiredMode.REQUIRED, example = "AMAZON")
    private String code;

    @Schema(description = "平台名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "Amazon")
    private String name;

    @Schema(description = "平台类型", example = "1")
    private Integer type;

    @Schema(description = "平台状态", example = "1")
    private Integer status;

    @Schema(description = "平台区域", example = "US")
    private String region;

    @Schema(description = "平台URL", example = "https://sellercentral.amazon.com")
    private String url;

    @Schema(description = "API基础URL", example = "https://mws.amazonservices.com")
    private String apiBaseUrl;

    @Schema(description = "API版本", example = "2011-10-01")
    private String apiVersion;

    @Schema(description = "认证类型", example = "1")
    private Integer authType;

    @Schema(description = "客户端ID", example = "amzn1.application-oa2-client.xxx")
    private String clientId;

    @Schema(description = "客户端密钥", example = "xxx")
    private String clientSecret;

    @Schema(description = "访问令牌", example = "Atza|xxx")
    private String accessToken;

    @Schema(description = "刷新令牌", example = "Atzr|xxx")
    private String refreshToken;

    @Schema(description = "令牌过期时间")
    private LocalDateTime tokenExpireTime;

    @Schema(description = "支持的货币", example = "USD,EUR,GBP")
    private String supportedCurrencies;

    @Schema(description = "支持的语言", example = "en-US,es-ES,fr-FR")
    private String supportedLanguages;

    @Schema(description = "费率配置", example = "{\"referralFee\": 0.15}")
    private String feeConfig;

    @Schema(description = "同步配置", example = "{\"syncInterval\": 3600}")
    private String syncConfig;

    @Schema(description = "是否启用", example = "true")
    private Boolean enabled;

    @Schema(description = "排序", example = "1")
    private Integer sort;

    @Schema(description = "备注", example = "Amazon美国站")
    private String remark;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

}
